package models

import (
	"gorm.io/gorm"
	"time"
)

// SysRoleRoutes 系统角色路由关联表结构体
type SysRoleRoutes struct {
	ID        uint64    `gorm:"column:id;primary_key;auto_increment" json:"id" form:"id"`
	SysRoleID uint64    `gorm:"column:sys_role_id;type:bigint;not_null" json:"sys_role_id" form:"sys_role_id"`
	RouteID   uint64    `gorm:"column:route_id;type:bigint;not_null" json:"route_id" form:"route_id"`
	CreatedAt time.Time `gorm:"column:created_at;default:CURRENT_TIMESTAMP" json:"created_at" form:"created_at"`
	UpdatedAt time.Time `gorm:"column:updated_at;default:CURRENT_TIMESTAMP;update_default:CURRENT_TIMESTAMP" json:"updated_at" form:"updated_at"`
}

// TableName 指定结构体对应的数据库表名
func (SysRoleRoutes) TableName() string {
	return "sys_role_routes"
}

// GetSysRoleRoutesBySysRoleID
//
// 描述信息：根据系统角色ID获取该角色的父级路由信息
//
// Param：
//
//	db ：mysql链接
//	sysRoleID ：系统角色ID
//
// Return：
//
//	[]SysRoleRoute ：查询到的系统角色路由列表
//	error ：错误信息
func GetSysRoleRoutesBySysRoleID(db *gorm.DB, sysRoleID uint64) ([]SysRoleRoutes, error) {
	var sysRoleRoutes []SysRoleRoutes
	result := db.Model(&SysRoleRoutes{}).Where("sys_role_id = ?", sysRoleID).Find(&sysRoleRoutes)
	if result.Error != nil {
		return nil, result.Error
	}
	return sysRoleRoutes, nil
}
